package com.deyuanyun.pic.pipe.service;

import com.deyuanyun.pic.pipe.controller.dto.*;
import com.deyuanyun.pic.pipe.domain.*;
import com.deyuanyun.pic.pipe.domain.bo.*;
import com.github.pagehelper.Page;

import java.util.List;

/**
 * “管道数据查询” 服务接口
 *
 * @author huanglw
 * @date  2016-10-10
 *
 * History: [修改人][时间][修改描述]
 */
public interface PipeMgrService {

	/**
	 * 条件查询 管道信息
	 *
	 * @param pipeSegmentInfoQuery
	 * @return
	 */
	Page<PipeSegmentInfoBO> queryPipeSegmentInfo(PipeSegmentInfoQuery pipeSegmentInfoQuery);

	/**
	 * 根据条件 统计管道高层
	 *
	 * @param pipeBaseQuery
	 * @return
	 */
	List<PipeLineStatisticsBO> statistics(PipeBaseQuery pipeBaseQuery);

	/**
	 * 查询组成元素对象
	 *
	 * @param elementId
	 * @return
     */
	PipeLineElement findPipeLineElement(String elementId);

	/**
	 * 条件查询 场站阀室
	 *
	 * @param valveRoomQuery
	 * @return
	 */
	Page<ValveRoomBO> queryValveRoom(ValveRoomQuery valveRoomQuery);

	/**
	 * 条件查询 线路阀门
	 *
	 * @param valveQuery
	 * @return
	 */
	Page<Valve> queryValve(ValveQuery valveQuery);

	/**
	 * 条件查询 钢管信息
	 *
	 * @param pipeBaseQuery
	 * @return
	 */
	Page<SteelPipe> querySteelPipe(PipeBaseQuery pipeBaseQuery);

	/**
	 * 条件查询 三通信息
	 *
	 * @param teeQuery
	 * @return
	 */
	Page<Tee> queryTee(TeeQuery teeQuery);

	/**
	 * 条件查询 开孔
	 *
	 * @param pipeBaseQuery
	 * @return
	 */
	Page<Tap> queryTap(PipeBaseQuery pipeBaseQuery);

	/**
	 * 条件查询 封堵物信息
	 *
	 * @param pipeBaseQuery
	 * @return
	 */
	Page<Closure> queryClosure(PipeBaseQuery pipeBaseQuery);

	/**
	 * 条件查询 异管径信息
	 *
	 * @param pipeBaseQuery
	 * @return
	 */
	Page<Reducer> queryReducer(PipeBaseQuery pipeBaseQuery);

	/**
	 * 条件查询 收发球筒
	 *
	 * @param piggingStructureQuery
	 * @return
	 */
	Page<PiggingStructure> queryPiggingStructure(PiggingStructureQuery piggingStructureQuery);

	/**
	 * 条件查询 套管
	 *
	 * @param pipeBaseQuery
	 * @return
	 */
	Page<Cross> queryCross(PipeBaseQuery pipeBaseQuery);

	/**
	 * 条件查询 穿跨越
	 *
	 * @param pipeCrossQuery
	 * @return
	 */
	Page<PipeCross> queryPipeCross(PipeCrossQuery pipeCrossQuery);

	/**
	 * 条件查询 地面标识
	 *
	 * @param identificationQuery
	 * @return
	 */
	Page<Identification> queryIdentification(IdentificationQuery identificationQuery);

	/**
	 * 条件查询 水工保护
	 *
	 * @param protectionQuery
	 * @return
	 */
	Page<Protection> queryProtection(ProtectionQuery protectionQuery);


	/**
	 * 条件查询 输送介质 数据
	 *
	 * @param transformMediaQuery
	 * @return
	 */
	Page<TransformMedia> queryTransformMedia(TransformMediaQuery transformMediaQuery);

	
	
}
